//
//
//class Solution {
//
//
//    public boolean exist(char[][] board, String word) {
//        int n = board.length;
//        int m = board[0].length;
//        for (int i = 0; i < n; i++) {
//            for (int j = 0; j < m; j++) {
//                if (dfs(board, new boolean[n][m], i, j, n, m, word, 0)) return true;
//            }
//        }
//        return false;
//    }
//
//
//    public boolean dfs(char[][] board, boolean[][] flg, int i, int j, int n, int m, String word, int index) {
//        if (index == word.length()) {
//            return true;
//        }
//        if (i < 0 || i >= n || j < 0 || j >= m || flg[i][j]) return false;
//        if (board[i][j] == word.charAt(index)) {
//            flg[i][j] = true;
//            boolean flg1 = dfs(board, flg, i - 1, j, n, m, word, index + 1);
//            boolean flg2 = dfs(board, flg, i + 1, j, n, m, word, index + 1);
//            boolean flg3 = dfs(board, flg, i, j - 1, n, m, word, index + 1);
//            boolean flg4 = dfs(board, flg, i, j + 1, n, m, word, index + 1);
//            flg[i][j] = false;
//            return flg1 || flg2 || flg3 || flg4;
//        }
//        return false;
//    }
//}